"Ladder Test" StoreRoom is a room. An enterable supporter called a scaffold is in StoreRoom. the description is "A painter's scaffold.[line break] [if ladder is placed] It has a ladder placed on it.[end if]". OnScaffold is a room. the printed name is "On The Scaffold". understand the command "ascend" as something new. ascending is an action applying to one thing. understand "ascend [something]" as ascending. understand the command "descend" as something new. descending is an action applying to one thing. understand "descend [something]" as descending. a ladder is in the storeroom. the ladder can be either placed or unplaced. the ladder is unplaced. the description of the ladder is "A plain ordinary ladder.". understand the command "climb" as something new. nuking is an action applying to one thing. understand "climb [something]" as nuking. climbing on is an action applying to one thing. understand "climb on [something]" as climbing on. climbing down is an action applying to one thing. understand "climb down [something]" as climbing down. climbing up is an action applying to one thing. understand "climb up [something]" as climbing up. report climbing up the ladder when the ladder is not placed: say "The ladder ain't placed on the scaffold."; stop the action. instead of climbing on the ladder when the ladder is not placed: say "You need to put the ladder on the scaffold before doing that.". instead of climbing on the scaffold: say "You climb onto the scaffold."; move the player to OnScaffold; move the ladder to OnScaffold; now the ladder is placed; stop the action. carry out climbing on the ladder when the ladder is placed: say "You get onto the ladder and climb it to the top."; move the player to OnScaffold; move the ladder to OnScaffold; stop the action. carry out nuking the ladder when the player is in StoreRoom and the ladder is placed: move the player to OnScaffold; move the ladder to OnScaffold; say "You climb up the ladder and step onto the scaffold.". report nuking the ladder when the player is in StoreRoom and the ladder is not placed: say "You need to place the ladder on the scaffold before doing that!". carry out taking the ladder: now the ladder is unplaced; continue the action. check putting the ladder on the scaffold when the ladder is placed: say "You've already placed the ladder.". carry out putting the ladder on the scaffold when the ladder is unplaced: now the ladder is placed; now the ladder is in the location; stop the action. carry out ascending the ladder when the ladder is unplaced: say "You need to place the ladder on the scaffold before doing that.". carry out ascending the ladder when the ladder is placed: move the player to OnScaffold; move the ladder to OnScaffold; say "You climb to the top of the ladder and step onto the scaffold.". carry out descending the ladder when the player is in OnScaffold: move the player to StoreRoom; move the ladder to StoreRoom; say "You climb back down the ladder and step onto the floor.". carry out climbing down the ladder when the player is in OnScaffold: try descending the ladder instead. carry out climbing up the ladder when the player is in StoreRoom and the ladder is placed: move the player to OnScaffold; move the ladder to OnScaffold; say "You climb to the top of the ladder and step onto the scaffold.". carry out climbing up the ladder when the ladder is not placed: say "The ladder ain't placed on the scaffold!"; stop the action. procedural rule: if the player is in OnScaffold then ignore the can't go that way rule. procedural rule: if the player is in StoreRoom then ignore the can't go that way rule. instead of going down when the player is in OnScaffold: try climbing down the ladder instead. instead of going up when the player is in StoreRoom, try ascending the ladder.